package com.example.mcp.server.model;

import com.fasterxml.jackson.annotation.JsonProperty;

public class McpInitializeRequest extends McpMessage {

    @JsonProperty("protocolVersion")
    private String protocolVersion;

    @JsonProperty("capabilities")
    private ClientCapabilities capabilities;

    @JsonProperty("clientInfo")
    private ClientInfo clientInfo;

    public String getProtocolVersion() {
        return protocolVersion;
    }

    public void setProtocolVersion(String protocolVersion) {
        this.protocolVersion = protocolVersion;
    }

    public ClientCapabilities getCapabilities() {
        return capabilities;
    }

    public void setCapabilities(ClientCapabilities capabilities) {
        this.capabilities = capabilities;
    }

    public ClientInfo getClientInfo() {
        return clientInfo;
    }

    public void setClientInfo(ClientInfo clientInfo) {
        this.clientInfo = clientInfo;
    }

    public static class ClientCapabilities {

        @JsonProperty("experimental")
        private Object experimental;

        @JsonProperty("sampling")
        private Object sampling;

        public Object getExperimental() {
            return experimental;
        }

        public void setExperimental(Object experimental) {
            this.experimental = experimental;
        }

        public Object getSampling() {
            return sampling;
        }

        public void setSampling(Object sampling) {
            this.sampling = sampling;
        }
    }

    public static class ClientInfo {

        @JsonProperty("name")
        private String name;

        @JsonProperty("version")
        private String version;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getVersion() {
            return version;
        }

        public void setVersion(String version) {
            this.version = version;
        }
    }
}